package model.empresa;

import framework.TransactionRequired;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import javax.persistence.EntityManager;

public class EmpresaRepository {

    private @Inject EntityManager em;

    @TransactionRequired
    public void salvar(Empresa empresa){
        if(empresa.getId() == null){
            em.persist(empresa);
        }else{
            em.merge(empresa);
        }
    }

     public List<Empresa> getListaEmpresaTipoLixo(String idTipoLixo) {
        if(idTipoLixo.isEmpty()){
            return new ArrayList<Empresa>();
        }else{
            return em.createQuery("select emp from Empresa as emp join emp.tipoLixo as tl where tl.id = "+idTipoLixo).getResultList();
        }
    }

      public List<Empresa> getListaEmpresa() {
          return em.createQuery("select object(e) from Empresa as e").getResultList();
    }

    @TransactionRequired
    public void excluir(Empresa pojo){
        if(!em.contains(pojo)){
         pojo =  em.find(Empresa.class, pojo.getId());
        }
        em.remove(pojo);
    }

}